#ifndef CSE168_LUMINUS_MATERIUS_H_INCLUDED
#define CSE168_LUMINUS_MATERIUS_H_INCLUDED

#include "Material.h"
class LuminusMaterius : public Material
{
public:
	LuminusMaterius(Vector3 color=Vector3(1), float wattage=100);
	~LuminusMaterius(void);

    void setColor(const Vector3& v)     {m_color = v;}
    void setWattage(float f)            {m_wattage = f;}

    virtual void preCalc() {}
    
    virtual Vector3 shade(const Ray& ray, const HitInfo& hit, char rayCount, const Scene& scene,
                          int mode=RAYTRACE, Vector3 rayColor=Vector3(1), bool diffuseRay=false) const;

    virtual void handlePhoton(const Ray& ray, const HitInfo& hit, char rayCount, Vector3 photonFlux, const Scene& scene,
    					 	  int mode=APPM_PHOTON, LightPath *lp=0) const;

protected:
	float m_wattage;
	Vector3 m_color;
};


#endif // CSE168_LUMINUS_MATERIUS_H_INCLUDED
